package com.hbzjjzx.athlete.athlete.service;


import com.github.pagehelper.PageHelper;
import com.hbzjjzx.athlete.athlete.domain.AtsEmpAthlete;
import com.hbzjjzx.athlete.athlete.mapper.AtsEmpAthleteMapper;
import com.hbzjjzx.athlete.athlete.utils.Page;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;

import javax.annotation.Resource;
import java.util.List;

/**
 * @program: hbats
 * @description: 运动员信息实现接口
 * @author: 张超
 * @create: 2019-10-29 18:54
 */

@Service
public class AtsEmpAthleteServiceImpl implements AtsEmpAthleteService {

    @Resource
    AtsEmpAthleteMapper atsEmpAthletedao;

    /**
     * 批量删除
     * @param ids
     * @return
     */
    @Override
    public int deleteAll(String ids) {
        if(StringUtils.isEmpty(ids)){
            return 0;
        }else{
            String[] idss = ids.split(",");
            for(int i = 0;i<idss.length;i++){
                AtsEmpAthlete atsEmpAthlete = new AtsEmpAthlete();
                atsEmpAthlete.setAthleteId(Integer.valueOf(idss[i]));
                atsEmpAthlete.setIsva(2);
                saveOrUpdate(atsEmpAthlete);
            }
            return 1;
        }
    }

    @Override
    public List<AtsEmpAthlete> selectFour(int coachId) {
        return atsEmpAthletedao.selectFour(coachId);
    }



    /**
     * 根据运动教练员ID查询运动员
     * @param coachId
     * @return
     */
    @Override
    public List<AtsEmpAthlete> selectByCoachId(Integer coachId) {
        return atsEmpAthletedao.selectByCoachId(coachId);
    }

    /**
     * 根据科研教练查询运动员
     * @param oldCoachId
     * @return
     */
    @Override
    public List<AtsEmpAthlete> selectByOldCoach(Integer oldCoachId) {
        return atsEmpAthletedao.selectByOldCoach(oldCoachId);
    }

    /**
     * 修改是否存在用户标识  由用户那边调用
     * @param atsEmpAthlete
     * @return
     */
    @Override
    public int updater(AtsEmpAthlete atsEmpAthlete) {
        atsEmpAthletedao.updateByPrimaryKeySelective(atsEmpAthlete);
        return 0;
    }

    /**
     * 根据科研教练员ID 查找运动员胡立增加
     * @return
     */
    @Override
    public List<AtsEmpAthlete> selectTrees(Integer manId) {
        return atsEmpAthletedao.selectTree(manId);
    }

    /**
     * 过滤掉数组里面的运动员id
     * @param ids
     * @return
     */
    @Override
    public List<AtsEmpAthlete> findList(List<Integer> ids,Integer coachId) {
        return atsEmpAthletedao.findList(ids,coachId);
    }

    /**
     * 新增或者修改运动员
     * @param atsEmpAthlete 运动员信息对象
     * @return
     */
    @Override
    public int saveOrUpdate(AtsEmpAthlete atsEmpAthlete) {

        if(StringUtils.isEmpty(atsEmpAthlete.getAthleteId())){
            atsEmpAthletedao.insertSelective(atsEmpAthlete);
        }else{
            atsEmpAthletedao.updateByPrimaryKeySelective(atsEmpAthlete);
        }
        return 0;
    }

    /**
     * 根据ID查询
     * @param id
     * @return
     */
    @Override
    public AtsEmpAthlete findById(int id) {
        return atsEmpAthletedao.selectByPrimaryKey(id);
    }

    /**
     * 查询运动员列表
     * @param atsEmpAthlete
     * @param page
     * @return
     */
    @Override
    public List<AtsEmpAthlete> selectAll(AtsEmpAthlete atsEmpAthlete, Page page) {
        PageHelper.offsetPage(page.getStart(), page.getRows());

        List<AtsEmpAthlete> list = atsEmpAthletedao.selectAll(atsEmpAthlete);

        PageHelper.startPage(page.getStart(), page.getRows());
        return list;
    }

    /**
     * 查询总行数
     * @param atsEmpAthlete
     * @return
     */
    @Override
    public int selectCount(AtsEmpAthlete atsEmpAthlete) {
        return atsEmpAthletedao.selectCount(atsEmpAthlete);
    }


    /**
     * 查询运动员列表  不带分页
     * @param atsEmpAthlete
     * @return
     */
    @Override
    public List<AtsEmpAthlete> findAll(AtsEmpAthlete atsEmpAthlete) {
        return atsEmpAthletedao.findAll(atsEmpAthlete);
    }



    /**
     * 根据训练项目ID查找运动员
     * @param atsEmpAthlete
     * @return
     */
    @Override
    public List<AtsEmpAthlete> selectBysportId(AtsEmpAthlete atsEmpAthlete) {
        return atsEmpAthletedao.selectBysportId(atsEmpAthlete);
    }

    /**
     * 查询运动员与运动教练员关联（remark字段暂时代替为体育项目名称）胡立增加
     * @return
     */
    @Override
    public List<AtsEmpAthlete> selectTree(Integer manId) {
        return atsEmpAthletedao.selectTree(manId);
    }


    @Override
    public AtsEmpAthlete selectSportName(Integer athleteId) {
        return atsEmpAthletedao.selectSportName(athleteId);
    }
}